package com.leinao.dataset.service;

import com.leinao.commons.Response;
import com.leinao.dataset.dto.*;
import com.leinao.util.page.PageInfo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author  wangshoufa 
 * @date 2018年11月7日 下午4:51:01
 *
 */

public interface DataSetService {

	Response<PageInfo> getDataSetInfo(String userId, Integer cp, Integer ps);

	Response<Long> pushDataSet(HttpServletRequest request, PaiDataSetDto dataSet,String id);

	Response<Void> openDataSet(String userId, PublicDataSetDto publicDataSetDto);

	Response<PageInfo> getPublicDataSetList(Long categoryId, String userId, Integer pageNumber, Integer pageSize);

	Response<List<PaiDataSetDto>> optionalDataSet(String search, LoginResultDto userInfo);

	Response<PaiDataSetDto> dataSetDetail(String userId, String number);

	Response<DataSetSharingUserDto> getDataSetSharingUser(Long datasetId, LoginResultDto userInfo);

	Response<UserInfoDto> getSharingUserInfo(String email, LoginResultDto userInfo);

	Response<PageInfo> queryOpenDataSetInfo(Integer cp, Integer ps);

	Response<List<PaiDataSetDto>> getProjectDataSetList(Long projectId, String userId);

	Response<PageInfo> searchPublicDataSetList(String search, String userId, Integer pageNumber, Integer pageSize);

	Response<Boolean> checkDataSetPublicPersonFlag(Long dataSetId);

	Response<DataSetSharingUserDto> getDataSetSharingUserList(Long datasetId, LoginResultDto userInfo);

	Response<Void> attentionDataSet(Long dataSetId, Integer attentionFlag, LoginResultDto userInfo);

	Response<PageInfo> getUserDataSet(String userId, Integer pageNumber, Integer pageSize, Integer dataSetType);

	Response<PageInfo> optionalDataSetExceptOwn(Integer pageNumber, Integer pageSize, Long categoryId, LoginResultDto userInfo);

	Response<DataSetAttentionInfo> getUserAttentionStatus(Long dataSetId, LoginResultDto userInfo);

	Response<PageInfo> optionalDataSetExceptOwnAndAttention(Integer pageNumber, Integer pageSize, LoginResultDto userInfo);

	Response<String> getDataSetProfile(Long dataSetId);

}
